// #include <stdio.h>

// int main() {
//     int n=0;
//     int m=0;
//      scanf("%d %d",&n,&m);
//     int arr[10][10]={0};
//     int i=0;
//     int j=0;
//     //输入——数组
//     for(i=0;i<n;i++)
//     {
//         for(j=0;j<m;j++)
//         {
//             scanf("%d",&arr[i][j]);
//         }
//     }
//     //输入 
//     int k=0;
//     scanf("%d",&k);//进行k次操作
//     char ch=0; //r 行 c列
//     int a=0;
//     int b=0;
//     int s=0;//判断操作了几次
//     getchar();
//     for(s=0;s<k;s++)
//     {
//         scanf("%c %d %d",&ch,&a,&b);
//         getchar();
//     //先判断ch 是什么字符 再操作
//     //换行操作 
    
//         if(ch=='r') 
//         {
//             for(j=0;j<m;j++)
//             {
//             //行操作列不会变
//             int tem=0;
//             tem=arr[a-1][j];
//             arr[a-1][j]=arr[b-1][j];
//             arr[b-1][j]=tem;
//             }
//         }
//         //列操作
//         if(ch=='c')
//         {
//            for(i=0;i<n;i++)
//            {
//             //列操作 行不变
//             int tem =0;
//             tem=arr[i][a-1];
//             arr[i][a-1]=arr[i][b-1];
//             arr[i][b-1]=tem;
//            }
//         }
//         if(ch!='r'&& ch!='c')
//         {
//             continue;
//         }
//     }
//     //打印
//     for(i=0;i<n;i++)
//     {
//         for(j=0;j<m;j++)
//         {
//             printf("%d ",arr[i][j]);
//         }
//         printf("\n");
//     }
//     return 0;
// }
#include <stdio.h>
// int main()
// {
    // char a[5]="abcd";
    //char *p=a;//p变量存储的是字符数组a的首元素地址
    // char*const p=a;//const修饰的变量p
     //const 放在*左边，不能通过访问p来改变p所指向的对象的内容
     //const 放在*右边 修饰变量p 通过访问p可以改变变量p所指向对象的内容

    // *p='m';
    // int  a=10;
    // int b=100;
    // int *p=&a;
    // int *d=&b;
    // int const *p=&a;
    // int *const d=&b; 
    // *p=11;
    // *d=101;
    // *p=11;
    //p=&b;
    // d=&a;
    // printf("修改后\n");
    // printf("a=%d\n",*p);
    // printf("b=%d\n",*d);

    // return 0;
// }
// void  fun(int *p)
// {
//     int i=0;
//     for(i=0;i<4;i++)
//     {
//         printf("%d ",*(p+i));
//     }
//     printf("\n");

// }
// int main()
// {
//     int arr[2][2]={1,2,3,4};
//     //指针变量p指向数组首元素地址
//     // int * p=arr;
//     //用fun函数实现数组打印
//     fun(arr);
//     // printf("\n");
//     return 0;
// }
#include <stdio.h>
int main()
{
    int l=0;
    int r=0;
    scanf("%d %d",&l,&r);
    //两个数字
    int count=0;
    for(;l<=r;l++)
    {
        //产生l-r数字
        if(l<9)
        {
            if(l==2)
            {
                count =1;
            }   
        }
        else if(l>9)
        {
            while(l)
            {
                int x=l%10;
                l=l/10;
                if(x==2)
                {
                    count++;
                }
            }
        }  
    }
    printf("%d\n",count);
    return 0;

}